home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / prog_gen / softl300.zip / SOFTOOL.DOC < prev    next >
Text File  |  1996-04-21  |  22KB  |  546 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.                                 S O F T O O L
  12.  
  13.                                     v 3.0
  14.  
  15.                       Copyright 1994 Vincent Penquerc'h
  16.                              All Rights Reserved
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.                             DISCLAIMER OF WARRANTY
  28.  
  29.  
  30. THE AUTHOR WILL REFER TO VINCENT PENQUERC'H.
  31.  
  32. THE PROGRAM WILL REFER TO SOFTOOL, INCLUDING THE PROGRAM ITSELF, ITS
  33. DOCUMENTATION, AND ANY FILE IN THE ORIGINAL SOFTOOL PACKAGE.
  34.  
  35. THE AUTHOR HEREBY DISCLAIMS ALL WARRANTIES RELATING TO THIS PROGRAM,
  36. WHENEVER EXPRESSED OR IMPLIED, INCLUDING WITHOUT ANY LIMITATION ANY
  37. IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  38.  
  39. THE AUTHOR WILL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL,
  40. INDIRECT OR SIMILAR DAMAGES DUE TO LOSS OF DATA, DAMAGE OF HARDWARE OR
  41. ANY OTHER REASON, EVEN IF THE AUTHOR WAS ADVISED OF THE POSSIBILITY OF
  42. SUCH LOSS OR DAMAGE.
  43.  
  44. THIS PROGRAM AND DOCUMENTATION ARE RELEASED "AS IS" AS SHAREWARE. IT IS
  45. COPYRIGHTED BY THE AUTHOR, AND ALL RIGHTS AND OWNERSHIP ARE KEPT WITH THE
  46. AUTHOR. YOU MAY USE IT, COPY IT, AND GIVE IT TO ANYBODY AS LONG AS NO
  47. MODIFICATIONS ARE MADE.
  48.  
  49. PROGRAM AND DOCUMENTATION COPYRIGHT 1994 VINCENT 'INDY' PENQUERC'H, ALL
  50. RIGHTS RESERVED.
  51.  
  52. ALL QUOTED PRODUCT AND COMPANY NAMES ARE TRADEMARKS OF THEIR RESPECTIVE
  53. OWNERS.
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.                          TABLE OF CONTENTS
  63.  
  64.  
  65.  
  66.  
  67.       1. What is Softool ?
  68.       2. System requirements
  69.       3. Using Softool
  70.       4. Softool's API
  71.       5. Command line options
  72.       6. Troubleshooting
  73.       7. Contacting the author
  74.       8. Revision history
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.    1. What is Softool ?
  85.       -----------------
  86.  
  87.  
  88.  
  89.    Softool is a resident program that brings programmers helpful assistance
  90.    by allowing them to pop up information and tools on various topics a
  91.    programmer needs. Softool brings you the following:
  92.  
  93.     - an ASCII table, gives characters and codes in decimal and binary.
  94.     - a memory dumper, giving owner of dumped memory, with a string searcher.
  95.     - a 32 bit calculator, supporting binary, octal, decimal, hexadecimal.
  96.     - an interrupt viewer, with routine addresses and owner.
  97.     - a MCB viewer, supporting DOS 4.0 and later sub MCBs.
  98.     - a screen ruler, giving screen position, character and attribute.
  99.     - a register viewer, giving all registers value at activation.
  100.     - a scan code viewer, giving on the fly the scan codes activated.
  101.  
  102.  
  103.  
  104.  
  105.    2. System requirements
  106.       -------------------
  107.  
  108.  
  109.       In order to run Softool, you will need at least a 8088 based
  110.       PC, with at least 14 KB of memory, and DOS 2.0 or later. Softool
  111.       works with all standard video text modes, and with all card specific 
  112.       high resolution super VGA modes from which BIOS can obtain number of
  113.       columns and number of rows. If Softool works with a 40-column
  114.       display, it will leave garbage on the screen and some windows won't
  115.       be well drawn, because of the size some windows must have to display
  116.       all the information, especially the memory dumper.
  117.  
  118.  
  119.  
  120.  
  121.    3. Using Softool
  122.       -------------
  123.  
  124.  
  125.  
  126.       Softool is very convenient and intuitive to use. Once Softool is
  127.       installed, it can be called with the Alt-S hotkey, or the one you chose
  128.       thru the command line. A menu pops up and offers you the choice for
  129.       various features. Just choose the one you want. You can press Escape
  130.       at any time to exit the window you are in. In scrollable windows, you
  131.       may use the Home, End, PageDown, PageUp keys, and the arrow keys to
  132.       move. At any moment but in the scan code viewer, you may press F1 to get
  133.       an help screen or F5 to view the screen (hide current window) and press
  134.       a key to get back to Softool.
  135.  
  136.  
  137.  
  138.       The ASCII table window (scrollable):
  139.         You can browse all ASCII codes with their corresponding keys. This
  140.         table also indicates the symbols associated to these characters in
  141.         communications if there are any. This is very helpful, especially
  142.         for the box frame characters.
  143.  
  144.       The memory dumper window (scrollable):
  145.         The entire memory bank below 1 MB can be browsed there. Three input
  146.         fields are avalaible. The first one is an address field where you can
  147.         specify the segment or the offset you want to start displaying from 
  148.         by typing it, using an hexadecimal notation. The backspace key is used 
  149.         to delete the least significant digit. The two other ones let you type 
  150.         a string to be searched, in hexadecimal or ASCII notation. Softool 
  151.         will search for an occurence of the given string beginning at the 
  152.         current first displayed address whenever you press Enter in one of the 
  153.         string input fields, the hexadecimal one or the ASCII one. You may 
  154.         change field by pressing the TAB key. To swap between segment mode and
  155.         offset mode, use the shift TAB key combination.
  156.         By pressing Ctrl-Enter, you switch between this memory dump mode and
  157.         the disassembler mode. The memory contents are disassembled instead
  158.         of being displayed as hexadecimal and ASCII.
  159.         
  160.  
  161.       The Calculator window:
  162.         This 32 bit calculator offers you base conversion, with
  163.         binary, octal, decimal and hexadecimal bases. With those bases, you
  164.         are provided with the following keys:
  165.  
  166.           key               operation
  167.  
  168.            +                addition
  169.            -                substraction
  170.            *                multiplication
  171.            /                division
  172.            %                modulo
  173.            ~                not
  174.            ^                xor
  175.            &                and
  176.            |                or
  177.            <                shift left
  178.            >                shift right
  179.            backspace        delete last digit
  180.            delete           set current number to 0
  181.  
  182.         A three-sign symbol located just under the number remembers you the
  183.         current base, and another three-sign symbol indicates the operator
  184.         currently used. In case of an overflow, a flag will notice it to you
  185.         as well as an error, as dividing something by 0.
  186.         You can enter digits with 0-9 and a-f, and delete a digit with the
  187.         backspace key. Case is not significant for the hexadecimal letter 
  188.         digits. The numbers range between 0 and ffffffffh (a 32 bit number, or 
  189.         an unsigned long (speaking in C)). Just remember to check the current
  190.         base if some letters or digits are not accepted by the calculator.
  191.         This calculator is intented for programmers and does not accept
  192.         parentheses or operator priority. You have to press ENTER each time
  193.         you want the result to be displayed. For example, if you enter
  194.         7518+3*5, the result will be 15 (3*5), 7518 was deleted by the new
  195.         operands 3 and 5. 10 memories are available, associated with the
  196.         function keys, from F1 to F10. To save the current number in a memory,
  197.         press control and the wanted function key. To load a memory as the
  198.         current number, press alt and the wanted function key. Changing base
  199.         is done by pressing ALT or CONTROL and the letter key for the selected
  200.         base: B for binary, O for octal, D for decimal and H for hexadecimal.
  201.  
  202.         The interrupt viewer window (scrollable):
  203.           You can there check all interrupts with their address and their
  204.           owner. 
  205.  
  206.         The MCB viewer window (scrollable):
  207.           All MCBs are displayed, including upper memory ones if upper memory
  208.           blocks are supported. The first column is the MCB identificator.
  209.           This can be M (this MCB is not the last in the chain) or Z (this is
  210.           the last MCB in the chain). DOS 4.0+ extended MCBs are supported.
  211.           These extended MCB's bring several more identificators, such as D
  212.           (device driver), and others. The second field is the starting
  213.           segment of the MCB. The third one is the size in paragraphs of the
  214.           allocated memory, and the fourth one is the owner's name.
  215.  
  216.         The screen ruler window:
  217.           Lets you move the cursor across the screen, giving you its x and
  218.           y coordinates, plus the character code and the attribute under the
  219.           cursor. The window moves when you press F6, thus allowing you to
  220.           to browse all the screen, including the window itself.
  221.  
  222.         The register viewer window:
  223.           All CPU registers (including CS, IP and the flags) are displayed
  224.           with the value they had just before Softool was invoked. This allows
  225.           simple debugging.
  226.  
  227.         The scan code viewer window:
  228.           All keys you press and release produce a scan code. This window
  229.           will show you these codes as you use the keybaord. It detects make
  230.           and break codes, extended keys and displays the scan code in binary
  231.           and hexadecimal.
  232.  
  233.  
  234.  
  235.  
  236.  
  237.    4. Softool's API
  238.       -------------
  239.  
  240.  
  241.       All my programs use the standard multiplex interrupt as the interface
  242.       between them and other programs. All have the same multiplex identifier
  243.       to lower the risk of multiplexer conflicts with other programs. This
  244.       identifier is 0F4h. They recognize themselves by checking the program
  245.       identification register (DX). Softool's ID is 2. Thus, to call Softool,
  246.       you have to call int 2Fh with AH=0F4h and DX=2. Here is a list of
  247.       services offered by Softool:
  248.  
  249.         0: installation test
  250.         1: installation location request
  251.         2: activation request
  252.  
  253.       The service code is to be put in AL.
  254.       Moreover, Softool can be activated using the INT 3 opcode (breakpoint).
  255.       This allows you for easy call, as if you ware calling a debugger.
  256.       Here are samples of code in assembler, C and Pascal to call Softool
  257.       using the multiplex interrupt API:
  258.  
  259.         Assembly:
  260.  
  261.             mov ax,0f402h
  262.             mov dx,2
  263.             int 2fh
  264.  
  265.  
  266.         C:
  267.  
  268.             struct WORDREGS regs;
  269.             regs.ax=0xf402;
  270.             regs.dx=2;
  271.             int86(0x2f,regs,regs);
  272.  
  273.  
  274.         Pascal:
  275.  
  276.             type Registers=record
  277.               case integer of
  278.                 0:(AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags:word);
  279.                 1:(AL,AH,BL,BH,CL,CH,DL,DH:byte);
  280.               end;
  281.             Var Regs:Registers;
  282.             Regs.AX=$F402;
  283.             Regs.DX=2;
  284.             Intr($2F,Regs);
  285.  
  286.  
  287.    5. Command line options
  288.       --------------------
  289.  
  290.  
  291.       These otpions can be browsed at the DOS command line by typing one of
  292.       the following commands:
  293.  
  294.         SOFTOOL -?
  295.         SOFTOOL -H
  296.  
  297.       To unload Softool, type:
  298.  
  299.         SOFTOOL -U
  300.  
  301.       To save some memory, you may want to load Softool's 4K screen buffer
  302.       in upper memory, by using the 'M' buffer:
  303.  
  304.         SOFTOOL -M
  305.  
  306.       'M' stands for 'Memory'. If you want to change the default hotkey for
  307.       enabling and desabling Softool, you may use the 'K' option, as shown
  308.       below:
  309.  
  310.         SOFTOOL -K CONTROL ALT SPACEBAR
  311.  
  312.       'K' stands for 'hotKey'. This command line will trigger the enabling
  313.       and disabling command whenever you press the given key combination.
  314.       This is the template for using this switch. You first give the mask
  315.       for the hotkey you want, after the letter 'K'. This mask can be any
  316.       combination of the following key names: control, alt, leftshift,
  317.       rightshift. You may specify any of them in any order, even none of
  318.       them. But beware not being in conflict with another program that
  319.       would use the same key combination. If you choose a null mask, that is
  320.       if you don't give any of these four symbols, Softool will trigger any
  321.       time you press this key, so it is likely to trigger even when you do
  322.       not want it, if you are to use this key for another purpose. Giving
  323.       one or more mask keys is wise. Once the mask is specified, give the
  324.       key you want to trigger Softool. You may give any of the keyboard keys
  325.       but the special keys, as the shifts, the scroll lock and num lock
  326.       keys, the system request key, the break key, the caps lock key, the
  327.       control key or the alt key. If the key you choose does not have an
  328.       associated character to be displayed, such as the page up key, or the
  329.       escape key, use the following table that gives you the word to use to
  330.       designate this key:
  331.  
  332.         Function keys:              F1, F2, F3, F4, F5, F6, F7, F8,
  333.                                     F9, F10, F11, F12
  334.         Arrow keys:                 up, down, left, right
  335.         Keypad special keys:        Keypad/, Keypad*, Keypad-, Keypad+,
  336.                                     Keypad5
  337.         Other Keys:                 backspace, del, end, enter, esc, home,
  338.                                     ins, pgdn, pgup, prtsc, spacebar, tab
  339.  
  340.       Know that some key combinations won't work, as the keyboard does not
  341.       always send a scan code for all of them, especially when all the status
  342.       keys are pressed at the same time. Case is not important, as Softool
  343.       checks for both upper and lower case characters. To select another
  344.  
  345.  
  346.       language (default is english), you may use the 'L' switch, followed by
  347.       the language you want to use:
  348.  
  349.         SOFTOOL -L FRENCH
  350.  
  351.       'L' stands for 'Language'. The supported languages are english, french
  352.       and spanish.
  353.  
  354.       To disable help screens, use the 'N' switch:
  355.  
  356.         SOFTOOL -N
  357.  
  358.       The help screens will not be loaded into the resident portion, saving
  359.       more than 5 KB of DOS conventional memory for better performance with
  360.       other DOS programs.
  361.       Softool tests the current video mode for being a text mode or a graphic
  362.       mode before activating. It pops up only if the current mode is a text
  363.       one. You may force Softool to activate when it thinks to be in a graphic
  364.       mode by using the 'T' switch, as follows:
  365.  
  366.         SOFTOOL -T
  367.  
  368.       When specified, softool will skip text mode detection and activate every
  369.       time it is requested to pop up. Be warned that if you are in a graphic
  370.       mode, Softool will pop up but its windows will be invisible, as it thinks
  371.       the current video mode is a text one. You will be able to navigate in
  372.       Softool, but you will see nothing. To exit softool, just type ESC until
  373.       you get out.
  374.       You may enable int 3 call by using the '3' switch:
  375.  
  376.         SOFTOOL -3
  377.  
  378.       This will call Softool each time int 3 (breakpoint) is called. This
  379.       allows for easy debugging of your programs, as you can see memory
  380.       exactly when you want it: just place a call to int 3 (hex code CC)
  381.       where you want Softool to pop up. You then just have to watch your
  382.       program's memory and registers as they were when Softool was called.
  383.       When you have registered, a personal registration number is sent to
  384.       you and can be used to remove the 'Unregistered version' message on
  385.       the top of Softool's windows and the first reminder window. To register
  386.       your copy of Softool, use the 'R' switch, as follows:
  387.  
  388.         SOFTOOL -R <name>,<number>
  389.  
  390.       Softool will then record your registration and no more display these
  391.       reminders.
  392.  
  393.  
  394.  
  395.  
  396.    6. Troubleshooting
  397.       ---------------
  398.  
  399.  
  400.       These are some problems you may encounter running Softool, with
  401.       explanations and/or ways to prevent these problems. If you have any
  402.       problems, read thoroughly this section, you may find the solution.
  403.  
  404.  
  405.       Q: I get the message 'Error in option ....'.
  406.       A: You misused a switch. Check the documentation (this file), chapter
  407.          'Command line options'.
  408.  
  409.       Q: I get the message 'Softool is not installed in memory'.
  410.       A: You attempted to unload Softool, but no copy of itself was detected
  411.          in memory. If there is one, it might be a multiplex conflict. Remove
  412.          other resident programs to locate the one creating the conflict. To
  413.          avoid such conflicts, all my programs use the same multiplex code
  414.          and identify themselves with another code, to reduce the number of
  415.          unavalaible multiplex codes.
  416.  
  417.       Q: I get the message 'Softool is already resident in memory'.
  418.       A: You attempted to load Softool, but it detected another copy of it
  419.          in memory. If there is not one, it might be a multiplexer conflict.
  420.  
  421.       Q: I get the message 'Softool can't be uninstalled ...'
  422.       A: You loaded another resident program after Softool, and this program
  423.          hooked some of the interrupts Softool hooked before. Softool can't
  424.          safely unload itself and will stay in memory to avoid any lockup.
  425.          Remove the program you loaded after Softool, remove Softool, then
  426.          load your program again.
  427.  
  428.       Q: I get the message 'Couldn't load buffer hi, loading low'.
  429.       A: Softool detected an error loading the buffer hi using the 'M' option
  430.          and loaded it in conventional memory. Softool will work perfectly
  431.          but will use a little more base memory.
  432.  
  433.       Q: Softool beeps when I try to pop it up.
  434.       A: Softool detected the current video mode is a graphic one and can't
  435.          pop up, as it is only visible in text mode. So Softool beeps but
  436.          stays asleep. To activate Softool, just switch to a text mode. If
  437.          the mode you are calling softool from is a text mode but is detected
  438.          as not being a text mode, you can run Softool with the 'T' switch,
  439.          to tell Softool to always activate without testing for the current
  440.          video mode being a text mode or not.
  441.  
  442.  
  443.  
  444.  
  445.  
  446.    7. Contacting the author
  447.       ---------------------
  448.  
  449.  
  450.       If you have any bug reports, comments, flames or if you want to
  451.       register, feel free to write me at the following email address:
  452.  
  453.       penquerc@enssat.fr
  454.  
  455.       or via snail mail:
  456.  
  457.       Vincent Penquerc'h
  458.       3, rue d'Ecosse
  459.       35200 Rennes
  460.       France
  461.  
  462.  
  463.       Registering Softool brings you a personal registration number that
  464.       removes the 'Unregistered version' title an all Softool windows. 
  465.       The registration fee for this program is 90 french francs.
  466.       Special prices are available for site licenses, see the ORDER.FRM file.
  467.       Please note that Softool is shareware and is not free software nor
  468.       public domain software. If you use this program after a two week
  469.       free evaluation period, please register, so I can continue enhancing
  470.       Softool and release other neat programs to meet your needs. Keeping
  471.       using Softool after this two week evaluation period without registering
  472.       is illegal. Please see included file ORDER.FRM for information about
  473.       registering.
  474.  
  475.  
  476.  
  477.  
  478.    8. Revision history
  479.       ----------------
  480.  
  481.  
  482.  
  483.    v3.0   February 11th 1996
  484.             - Added the disassembler.
  485.             - Added on line help screens (Sorry, no Polish help screens).
  486.             - Added the scan code viewer.
  487.             - Added software call via multiplex interrupt and int 3.
  488.             - Added national characters in french and spanish messages.
  489.             - Added new features to the calculator.
  490.             - Text mode detection to not pop up while in graphics mode.
  491.             - Country detection to select the appropriate language.
  492.             - Added window hiding key to view original screen.
  493.  
  494.  
  495.    v2.0   May 11th 1995
  496.             - Added registration key recognition system.
  497.             - Added the register viewer.
  498.             - Modified calculator to handle 32 bit numbers.
  499.             - Added user memories in the calculator.
  500.             - Added Polish to supported languages.
  501.             - Enhanced the string searching utility in the memory dumper.
  502.             - Added HMA detection for memory dumper.
  503.             - Added NOT operator in the calculator.
  504.             - Added octal column in the ASCII table.
  505.             - Added mono display and video page detection when activating.
  506.             - Fixed a little bug in calculator display.
  507.  
  508.  
  509.    v1.41  March 25th 1995 (not released)
  510.             - Enhanced memory dumper.
  511.  
  512.  
  513.    v1.4   September 12th 1994 (not released)
  514.             - Added spanish to supported languages.
  515.             - Added a string searching utility in the memory dumper.
  516.             - Added shift left and right operators to the calculator.
  517.             - Reduced resident code memory requirements.
  518.             - Hid cursor when resident active.
  519.             - Enhanced command line error reporting.
  520.  
  521.  
  522.    v1.31  August 30th 1994 (not released)
  523.             - Fixed a bug in F11 and F12 scanning.
  524.  
  525.  
  526.    v1.3   August 20th 1994 (not released)
  527.             - Added language support, with english and french.
  528.             - Installed permanent multiplex interrupt handler.
  529.             - Fixed a little bug with the OR operator in the calculator.
  530.             - Fixed a small bug in command line parsing.
  531.  
  532.  
  533.    v1.2   August 8th 1994 (not released)
  534.             - Added the screen ruler.
  535.             - Fixed a little bug in hotkey selection.
  536.  
  537.  
  538.    v1.1   August 1st 1994 (not released)
  539.             - Allowed hotkey selection.
  540.             - Enhanced the memory dumper.
  541.  
  542.  
  543.    v1.0   July 16th 1994 (not released)
  544.             - First version of Softool.
  545.  
  546.